//thread类多线程编程
#include <iostream>
#include <thread>     //thread类
#include <unistd.h>  //linux里sleep头文件
using namespace std;

void thread01()
{
    for (int i=0; i<5; i++) {
        cout<<"T01 is working!"<<endl;
        sleep(1);//延时，程序暂停若干时间
    }
}
void thread02()
{
    for (int i=0; i<5; i++) {
        cout<<"T02 is working!"<<endl;
        sleep(2);//延时，程序暂停若干时间;mac单位为second
        
    }
}

int main(int argc, const char * argv[]) {
    // insert code here...
    //std::cout << "Hello, World!\n";
    thread task1(thread01);
    thread task2(thread02);
    task1.join();
    //join函数会阻塞主流程，所以子线程都执行完成之后才继续执行主线程。可以使用detach将子线程从主流程中分离，独立运行，不会阻塞主线程
    task2.join();
    for (int i=0; i<5; i++) {
        cout<<"Main is working!"<<endl;
        sleep(1);
    }
    
   //system("pause");
    return 0;
}
